﻿
namespace G19Glower.Shared
{
    /// <summary>
    /// Provides a contract for classes that interact with keyboard colour.
    /// </summary>
    public interface IGlower
    {
        /// <summary>
        /// Called when glower is loaded.
        /// </summary>
        /// <param name="serviceProvider">Provider of all services from glower application.</param>
        void Initialize(IServicesProvider servicesProvider);

        /// <summary>
        /// Informs this glower it is able to interact with keyboard
        /// </summary>
        void Start();

        /// <summary>
        /// Informs glower that it is to stop interacting with keyboard.
        /// </summary>
        void Stop();

        /// <summary>
        /// Returns whether or not the glower is running.
        /// </summary>
        bool IsRunning { get; }
    }
}
